import thenFs from 'then-fs'

// 基于 Promise 方式读取文件内容

// 注意 .then() 中的失败函数是可选的, 可以被省略
thenFs.readFile('./files/1.txt').then((r1) => {
  console.log(r1.toString())
}, (err1) => {
  console.log(err1.message)
}).then(thenFs.readFile('./files/2.txt').then((r2) => {
  console.log(r2.toString())
}, (err2) => {
  console.log(err2.message)
})).then(thenFs.readFile('./files/3.txt').then((r3) => {
  console.log(r3.toString())
}).catch((err3) => {
  console.log(err3.message)
}))

console.log('------------------------------')
thenFs.readFile('./files/1.txt')  // 1.返回值是 Promise 的实例对象
  .then(r1 => {                   // 2.通过 .then 为第一个 Promise 实例指定成功之后的回调函数
    console.log(r1.toString())
    // 3.在第一个 .then 中返回一个新的 Promise 实例对象
    return thenFs.readFile('./files/2.txt')
  })
  .then(r2 => {
    console.log(r2.toString())
    return thenFs.readFile('./files/3.txt')
  })
  .then(r3 => {
    console.log(r3.toString())
  })

